<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  const obj = {
    msg:"hello world",
    // 拦截数据的访问，访问器
    getMsg(){
      fn1();
      return obj.msg;
    },
    // 拦截了数据的修改，控制器，设置器，修改器
    setMsg(val){
      fn2(val);
      obj.msg = val;
    }
  }
  // 访问数据
  console.log("原始数据为：" + obj.getMsg() );
  // 设置数据
  obj.setMsg("哈哈哈");
  // 访问数据
  console.log("数据为：" + obj.getMsg() );
  // 设置数据
  obj.setMsg("abc");
  // 访问数据
  console.log("数据为：" + obj.getMsg() );
  // 拦截到数据的访问之后要执行的功能
  function fn1(){
    console.log("数据被访问了")
  }
  // 拦截到数据的设置之后要执行的功能
  function fn2(val){
    console.log("数据被修改成了：", val)
  }
  
</script>
</html>